Conventionally, in a network using a wired or wireless, digital broadcasting system, digital data transmitted via the network is received and processed by an apparatus with software suitable for the exclusive hardware of the apparatus.
An example of such a conventional network is a broadcasting system using broadcasting satellites. In the system, all broadcasting stations produce and transmit programs with the same broadcasting format (video transmission format, video coding format, etc.), such as MPEG. The receiver receives and presents the programs with the exclusive hardware of a receiving apparatus handling the same broadcasting format.
An improvement in performance of computers achieves video signal processing, which only exclusive hardware has ever performed, by using software exploiting all-purpose hardware. Therefore, a receiving apparatus having no exclusive hardware can decode plural broadcast data of different formats, if all-purpose hardware of the receiving apparatus is loaded with software programs which decode the respective broadcast data. This makes possible broadcasting in which plural formats are mixed, such as data broadcasting different from conventional video/audio broadcasting.
Consequently, it is predictable that there will be much demand for a system in which programs executed in a receiving apparatus are downloaded via wired or wireless digital broadcasting.
However, a software program must be able to be handled by terminal hardware receiving the software program. In other words, if an inappropriate program is input to a terminal, the terminal no longer works. For this reason, to produce a software program suitable for terminal hardware, it is required to know complete information about the details of the terminal hardware. Terminals in the market have various kinds of specifications. Hence, it is difficult to transmit the software programs suitable for all the respective terminal hardware, because the amount of transmission is large.
An idea is conceived that a software program is divided into module programs, the module programs are transmitted, and each terminal stores only some of the module programs that the terminal hardware can execute. According to this idea, it is possible to update the version of a software program by replacing part of the software program with, or adding, other programs, without storing the whole software program. Therefore, in updating a version, it is, of course, necessary to know information about terminal hardware. Besides, information about the version of software currently stored in the terminal is required.
As described above, to secure the update of the version of software in a terminal due to programs being downloaded by remote maintenance, it is important to match software stored in a terminal to the terminal hardware.